library(data.table)
library(ggplot2)
library(magrittr)
library(extrafont)
library(scales)
library(fBasics)
library(tseries)
library(plot3D)
library(reshape2)
library(gridExtra)
library(quantspec)

source('setup.R')

04 - Quantile Cross-Spectral Analysis

Yields of Interest Rate Futures

cSeriesComb <- t(combn(cYieldLobs[-1], m=2))
for(i in 1:nrow(cSeriesComb)){
  series <- as.matrix(termSt[, cSeriesComb[i, ], with=FALSE])
  seriesNames <- colnames(series)
  plotData <- suppressWarnings(getQuantileCoherencyPlotData(series, titles=seriesNames))
  plotQuantileCoherency(plotData)
}

First Differences of Beta Coefficients

cSeriesComb <- t(combn(cBetaDiff[-1], m=2))
for(i in 1:nrow(cSeriesComb)){
  series <- as.matrix(termSt[, cSeriesComb[i, ], with=FALSE])
  seriesNames <- colnames(series)
  plotData <- suppressWarnings(getQuantileCoherencyPlotData(series, titles=seriesNames))
  plotQuantileCoherency(plotData)
}

Realised Variances of Yields of Interest Rate Futures

cSeriesComb <- t(combn(cYieldRV[-1], m=2))
for(i in 1:nrow(cSeriesComb)){
  series <- as.matrix(termSt[, cSeriesComb[i, ], with=FALSE])
  seriesNames <- colnames(series)
  plotData <- suppressWarnings(getQuantileCoherencyPlotData(series, titles=seriesNames))
  plotQuantileCoherency(plotData)
}

Realised Variances of Beta Estimates of the DNSM

cSeriesComb <- t(combn(cBetaRV[-1], m=2))
for(i in 1:nrow(cSeriesComb)){
  series <- as.matrix(termSt[, cSeriesComb[i, ], with=FALSE])
  seriesNames <- colnames(series)
  plotData <- suppressWarnings(getQuantileCoherencyPlotData(series, titles=seriesNames))
  plotQuantileCoherency(plotData)
}

RV of Beta Estimates and RV of a Yield of Interest Rate Future

cSeriesComb <- as.matrix(expand.grid(cYieldRV[3], cBetaRV[-1]))
for(i in 1:nrow(cSeriesComb)){
  series <- as.matrix(termSt[, cSeriesComb[i, ], with=FALSE])
  seriesNames <- colnames(series)
  plotData <- suppressWarnings(getQuantileCoherencyPlotData(series, titles=seriesNames))
  plotQuantileCoherency(plotData)
}

FD of Beta Estimate and RV of Beta Estimates

cSeriesComb <- as.matrix(expand.grid(cBetaDiff[3], cBetaRV[-1]))
for(i in 1:nrow(cSeriesComb)){
  series <- as.matrix(termSt[, cSeriesComb[i, ], with=FALSE])
  seriesNames <- colnames(series)
  plotData <- suppressWarnings(getQuantileCoherencyPlotData(series, titles=seriesNames))
  plotQuantileCoherency(plotData)
}

Yield and RV of Yield

cSeriesComb <- c(cYieldLobs[3], cYieldRV[3])
series <- as.matrix(termSt[, cSeriesComb, with=FALSE])
seriesNames <- colnames(series)
plotData <- suppressWarnings(getQuantileCoherencyPlotData(series, titles=seriesNames))
plotQuantileCoherency(plotData)